This is a very early draft, and is not ready for prime-time, let alone citation.
This is the documentation (in lieu of vignettes). To find the package, go to http://pensieveR.maxheld.de. Yeah, I know, the names are similar.
Q-Sorts record item positions continuously, distending from a neutral mid-point along some dimension. However, while adhering to Stephenson’s ontology and epistemology, Q methodology can also be extended to cover categorical operant subjectivity.
We here suggest a survey method and analytical algorithm to capture such shared viewpoints of categorizing items. The well-established Repertory Grid Technique also shares some of Q’s underpinnings and allows spontaneous categories, but does not lend itself (easily) to a transposed, “Q-wise” factor extraction and may not be ipsative between the items. Instead, we invite participants to come up with their own, dichotomous categories and ask them to classify the full Q-Set accordingly. The resultant logical table is summarized into a per-person measure of categorical item similarity, in turn transformed into a person-by-person correlation matrix. We then extract higher-level principal components (PCA) in a stepwise residual process, and calculate the respective (rotated) component scores, yielding ideal-typical, shared ways of categorizing the Q-Set. These categorical viewpoints are then subjected to a nested, low-level PCA to allow a substantive abduction of just what those categories might be.
Using real-world data gathered for this purpose, we show that results from the suggested procedure can be meaningfully interpreted as categorical operant subjectivity. We also present software for the R statistics framework to run the analysis.
Categorizing things can be considered a fundamental, spontaneous act of the human mind, and Q-Cat is a helpful addition to the Q-methodologists toolkit to study it.
data(komki)
# kill nas
komki$qsorts <- na.omit(komki$qsorts)
komki$items <- komki$items[komki$items$Handle.english %in% rownames(komki$qsorts), ]
komki$qcat$ass <- sapply(X = komki$qcat$ass, simplify = FALSE, FUN = function(x) {
x[rownames(x) %in% rownames(komki$qsorts), , drop = FALSE]
})
# killing jason, because a) he just didn't REALLY do the thing and b) he dominates the qcat model, which we don't like.
komki$qsorts <- komki$qsorts[, colnames(komki$qsorts) != "Jason"]
komki$qcat$desc <- komki$qcat$desc[, colnames(komki$qcat$desc) != "Jason"]
komki$qcat$ass$Jason <- NULL
Figure 1: Q-Sorting during the 2016 CiviCon